using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._DataInteroperabilityTools
{
    /// <summary>
    /// <para>Quick Import</para>
    /// <para>Geoprocessing tool to import data in any format supported by the ArcGIS Data Interoperability extension into feature classes.</para>
    /// <para>地理处理工具，用于将 ArcGIS Data Interoperability 扩展模块支持的任何格式的数据导入要素类。</para>
    /// </summary>    
    [DisplayName("Quick Import")]
    public class QuickImport : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public QuickImport()
        {

        }

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="_Input">
        /// <para>Input Dataset</para>
        /// <para>The data to be imported.</para>
        /// <para>要导入的数据。</para>
        /// </param>
        /// <param name="_Output">
        /// <para>Output Geodatabase</para>
        /// <para>The output file or personal geodatabase.</para>
        /// <para>输出文件或个人地理数据库。</para>
        /// </param>
        public QuickImport(object _Input, object _Output)
        {
            this._Input = _Input;
            this._Output = _Output;
        }
        public override string ToolboxName => "Data Interoperability Tools";

        public override string ToolName => "Quick Import";

        public override string CallName => "interop.QuickImport";

        public override List<string> AcceptEnvironments => [];

        public override object[] ParameterInfo => [_Input, _Output];

        /// <summary>
        /// <para>Input Dataset</para>
        /// <para>The data to be imported.</para>
        /// <para>要导入的数据。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input Dataset")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _Input { get; set; }


        /// <summary>
        /// <para>Output Geodatabase</para>
        /// <para>The output file or personal geodatabase.</para>
        /// <para>输出文件或个人地理数据库。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Geodatabase")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _Output { get; set; }


        public QuickImport SetEnv()
        {
            base.SetEnv();
            return this;
        }

    }

}